Skip to content

fix: repair documented workflows and API references - #115

Merged
rapids-bot[bot] merged 1 commit into
release/0.1from
fix/docs-audit-corrections
Jul 27, 2026
Merged

fix: repair documented workflows and API references#115
rapids-bot[bot] merged 1 commit into
release/0.1from
fix/docs-audit-corrections

Conversation

@zhongxuanwang-nv

@zhongxuanwang-nv zhongxuanwang-nv commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Overview

Correct verified documentation-audit failures in the generated Python API reference and executable workflows.

  • Preserve exact Python callable semantics in generated references, including async, keyword-only markers, return types, model fields, constraints, enum values, and error inheritance.
  • Make Rust scaffolds generated by a source-built CLI compile against that checkout, and correct the documented just syntax, standalone Codex snippets, doctor behavior, and metadata semantics.
  • Keep the exported consumer skill aligned with the corrected SDK documentation.

There are no breaking changes. This backport is based directly on release/0.1; all Fabric package manifests and lockfiles remain at 0.1.0, and no 0.2 release metadata is included.

Details

The generated Python reference was regenerated from the checked-in release/0.1 public code after correcting its postprocessor. Regression tests compare the complete rendered contracts directly to Python reflection while preserving the release branch’s NeMo Fabric terminology and streaming API.

The Rust scaffold now uses an absolute path plus the matching package version when the CLI is built in a source checkout; packaged CLI builds retain the version-only dependency. An empty [workspace] keeps an in-repository generated scaffold independent of the parent workspace.

The branch contains one signed PR-only commit on the latest release/0.1. It does not contain merged main history, version-bump commits, package metadata changes, or lockfile changes.

Existing issues and open pull requests were searched before publishing. Harbor Relay and release/quickstart work covered elsewhere were left untouched.

Validation

  • just test-python — 472 passed, 44 skipped.
  • just test-rust — all 44 Rust tests passed, including generated-scaffold coverage.
  • uv run --no-sync pytest tests/docs/test_python_api_docs.py tests/e2e/test_cli_scaffold.py tests/python/test_typed_config.py -q — 16 passed.
  • scripts/generate_api_docs.sh — regenerated the release-native Python reference deterministically.
  • cargo fmt --all -- --check and git diff --check passed.
  • The GitHub validation matrix passed across Linux, macOS, and Windows, including all wheel builds, pre-commit, Rust, and the Fern docs preview.

Where should the reviewer start?

Start with scripts/docs/enhance_python_api_reference.py for the Python reference-contract fixes, then review crates/fabric-cli/src/scaffold.rs and its Rust/Python regression tests for the source-checkout scaffold decision.

Related Issues: (use one of the action keywords Closes / Fixes / Resolves / Relates to)

  • Relates to: FABRIC-144

  • I confirm this contribution is my own work, or I have the right to submit it under this project's license.

  • I searched existing issues and open pull requests, and this does not duplicate existing work.

Summary by CodeRabbit

  • New Features
    • Rust scaffold generation now supports Cargo workspace behavior and improves portability when created from source checkouts.
  • Bug Fixes
    • Generated Rust projects now correctly reference a local core dependency when available, with a safe published-version fallback.
  • Documentation
    • Updated scaffold, installation, and SDK documentation for clearer guidance and more accurate runtime behavior.
    • Refreshed Python API reference formatting for signatures, type annotations, fields, inheritance, and enum values.
  • Tests
    • Expanded scaffold, build, and API-reference contract tests to verify generated outputs end-to-end.

@coderabbitai

coderabbitai Bot commented Jul 24, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

The PR adds checkout-aware Rust scaffold dependencies and build validation, introduces runtime-derived Python API documentation enhancement and contract tests, updates generated API references, and revises CLI, SDK, integration, and scaffold guidance.

Changes

Rust scaffold checkout integration

Layer / File(s) Summary
Checkout-aware dependency and workspace template
crates/fabric-cli/src/scaffold.rs, crates/fabric-cli/templates/rust/Cargo.toml.tmpl, docs/experimentation/cli.mdx
Generated Rust manifests use a canonical local fabric-core path with a matching version when available, otherwise a version-only dependency, and now include [workspace].
Generated project build validation
crates/fabric-cli/src/scaffold.rs, tests/e2e/test_cli_scaffold.py
Scaffold tests validate dependency metadata, local-checkout and fallback cases, and offline buildability of generated Rust projects.

Python API reference generation

Layer / File(s) Summary
Runtime annotation and documentation contracts
python/src/nemo_fabric/types.py, docs/sdk/python.mdx, skills/integrations/consumer/nemo-fabric-integrate/references/sdk-api-inventory.md
Python mapping types use Self, and SDK guidance documents runtime signature, diagnostic, metadata, and correlation contracts.
Runtime-aware Markdown enhancement
scripts/docs/enhance_python_api_reference.py, scripts/generate_api_docs.sh
Generated API pages are post-processed with runtime signatures, inheritance sections, enum values, Pydantic fields, and typed mapping fields.
Python reference contract tests
tests/docs/test_python_api_docs.py
Tests compare generated Markdown signatures and class contracts with runtime definitions.
Generated Python reference contracts
docs/reference/api/python-library-reference/*.md
Reference pages now expose normalized signatures, fields, inheritance, enum values, and return annotations.

Documentation guidance updates

Layer / File(s) Summary
CLI and integration examples
docs/getting-started/install.mdx, docs/integrations/harness/codex.mdx, docs/experimentation/cli.mdx
Examples update command ordering, initialize Codex configuration explicitly, and describe source-checkout scaffold behavior.

Estimated code review effort: 4 (Complex) | ~60 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Generator as API docs generator
  participant Enhancer as Runtime enhancer
  participant Runtime as Python runtime objects
  participant Tests as Documentation contract tests
  Generator->>Enhancer: Process generated Markdown
  Enhancer->>Runtime: Inspect signatures and class metadata
  Runtime-->>Enhancer: Runtime contracts
  Enhancer-->>Generator: Updated API reference pages
  Tests->>Runtime: Read runtime contracts
  Tests->>Generator: Compare generated pages
Loading
sequenceDiagram
  participant CLI as Fabric CLI
  participant Scaffold as Generated Rust project
  participant Cargo as Cargo
  participant Core as fabric-core checkout
  CLI->>Scaffold: Generate Cargo.toml
  Scaffold->>Core: Resolve sibling Cargo.toml
  Core-->>Scaffold: Canonical path or missing checkout
  Scaffold->>Cargo: Run offline cargo check
  Cargo-->>CLI: Build validation result
Loading
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 4.48% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title uses a valid Conventional Commits fix: prefix and accurately summarizes the workflow and API reference repair.
Description check ✅ Passed The description includes the required Overview, reviewer-start section, related issue, and confirmation checkboxes, with helpful validation details.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/docs-audit-corrections

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@crates/fabric-cli/src/scaffold.rs`:
- Around line 114-129: Extract the dependency-resolution logic from
rust_core_dependency into a path-parameterized resolver, preserving the existing
local-path and version-only fallbacks when Cargo.toml is missing,
canonicalization fails, or the path is not valid UTF-8. Add tests covering both
a valid local core path producing the path-and-version manifest form and an
unavailable/invalid path producing the version-only form, while keeping
rust_core_dependency wired to the repository’s existing path.

In `@docs/reference/api/python-library-reference/nemo_fabric.client.md`:
- Line 4: Update the first user-facing description in
docs/reference/api/python-library-reference/nemo_fabric.client.md:4 and
docs/reference/api/python-library-reference/nemo_fabric.models.md:4 to use the
full product name “NVIDIA NeMo Fabric” instead of “NeMo Fabric”; no other
content changes are needed.

In `@docs/sdk/python.mdx`:
- Line 251: Update the Fabric.doctor entry in the API table to show base_dir as
a keyword-only argument, matching the method signature that places it after *.
Preserve the existing diagnostics description and call shape otherwise.

In `@tests/docs/test_python_api_docs.py`:
- Around line 162-182: Strengthen the signature assertions in the
rendered-signature loop by normalizing each member’s inspect.signature result
and comparing the complete expected signature against rendered, including
parameter names, annotations, defaults, return type, and all parameters. Keep
the existing async and keyword-only checks, and ensure the test covers every
exported member represented by rendered_signatures.

In `@tests/e2e/test_cli_scaffold.py`:
- Around line 70-74: Update the dependency version assertion in the scaffold
test to read crates/fabric-cli/Cargo.toml with tomllib and derive the expected
version from its [package].version, then compare core_dependency["version"]
against that value instead of hardcoding "0.1.0". Keep the existing manifest,
dependency path, and workspace assertions unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 8a8cd89f-319d-4295-aafb-57ab7d0441a4

📥 Commits

Reviewing files that changed from the base of the PR and between e6cd337 and e5845a2.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (99)
  • crates/fabric-cli/src/scaffold.rs
  • crates/fabric-cli/templates/rust/Cargo.toml.tmpl
  • docs/experimentation/cli.mdx
  • docs/getting-started/install.mdx
  • docs/integrations/codex.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/constant-adapter-contract-version.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/enum-adapterdescriptorsource.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/enum-adapterkind.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/enum-capabilitykind.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/enum-capabilitytarget.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/enum-controllocation.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/enum-environmentownership.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/enum-mcpexposure.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/enum-relayatifstorageconfig.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/enum-relayatofendpointfieldnamepolicy.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/enum-relayatofendpointtransport.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/enum-relayatofmode.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/enum-relayotlptransport.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/enum-relayunsupportedbehavior.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/enum-resolutionstrategy.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/enum-telemetryprovider.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/fn-load-adapter-descriptor.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-adapterconfigsupport.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-adapterdescriptor.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-adapterrequirements.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-adaptertelemetryprovidersupport.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-adaptertelemetrysupport.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-capabilityplan.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-capabilityroute.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-capabilitytargetplan.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-environmentconfig.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-environmentplan.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-fabricconfig.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-harnessconfig.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-mcpconfig.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-mcpserverconfig.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-mcpserverplan.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-metadataconfig.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-modelconfig.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-relayatifconfig.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-relayatofconfig.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-relayatofendpointconfig.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-relaycomponentconfig.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-relayconfig.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-relayconfigpolicy.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-relayobservabilityconfig.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-relayotlpconfig.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-resolvecontext.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-resolvedadapterdescriptor.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-runplan.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-runtimecapabilities.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-runtimeconfig.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-skillconfig.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-telemetryconfig.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-telemetryplan.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-telemetryproviderconfig.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-toolsconfig.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/config/struct-toolsplan.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/doctor/enum-doctorstatus.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/doctor/struct-doctorcheck.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/doctor/struct-doctorreport.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/error/enum-fabricerror.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/error/type-result.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/fn-version.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/runtime/enum-errorstage.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/runtime/enum-runstatus.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/runtime/fn-stop-runtime.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/runtime/struct-adapterinvocation.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/runtime/struct-artifactmanifest.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/runtime/struct-artifactref.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/runtime/struct-environmenthandle.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/runtime/struct-errorinfo.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/runtime/struct-fabricevent.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/runtime/struct-invocationhandle.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/runtime/struct-runrequest.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/runtime/struct-runresult.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/runtime/struct-runtimecontext.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/runtime/struct-runtimehandle.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/runtime/struct-runtimetelemetrycontext.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/runtime/struct-telemetryref.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/schema/enum-schemaname.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/schema/fn-generate-all-schemas.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/schema/fn-generate-schema-json.mdx
  • docs/reference/api/rust-library-reference/nemo-fabric-core/schema/fn-write-schema-snapshots.mdx
  • docs/sdk/python.mdx
  • pyproject.toml
  • python/src/nemo_fabric/types.py
  • scripts/docs/enhance_python_api_reference.py
  • scripts/docs/generate_rust_library_reference.py
  • scripts/generate_api_docs.sh
  • skills/nemo-fabric-integrate/references/sdk-api-inventory.md
  • tests/docs/test_python_api_docs.py
  • tests/docs/test_rust_library_reference.py
  • tests/e2e/test_cli_scaffold.py

Comment thread crates/fabric-cli/src/scaffold.rs
Comment thread docs/reference/api/python-library-reference/nemo_fabric.client.md Outdated
Comment thread docs/sdk/python.mdx Outdated
Comment thread tests/docs/test_python_api_docs.py
Comment thread tests/e2e/test_cli_scaffold.py Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
docs/reference/api/python-library-reference/nemo_fabric.models.md (1)

773-774: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Fix heading spacing in the generator. Both generated headings violate MD022 because their descriptions begin immediately after the ## heading. Update the generator and regenerate the reference page.

  • docs/reference/api/python-library-reference/nemo_fabric.models.md#L773-L774: insert a blank line after RelayAtofFileSinkConfig.
  • docs/reference/api/python-library-reference/nemo_fabric.models.md#L845-L846: insert a blank line after RelayAtofStreamSinkConfig.

As per coding guidelines, files under docs/reference/api/** are generated output and must not be modified directly.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/reference/api/python-library-reference/nemo_fabric.models.md` around
lines 773 - 774, Update the documentation generator responsible for
RelayAtofFileSinkConfig and RelayAtofStreamSinkConfig headings to emit a blank
line between each heading and its description, then regenerate
docs/reference/api/python-library-reference/nemo_fabric.models.md so both
affected sections at lines 773-774 and 845-846 are corrected; do not edit the
generated file directly.

Sources: Coding guidelines, Linters/SAST tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@docs/reference/api/python-library-reference/nemo_fabric.models.md`:
- Around line 773-774: Update the documentation generator responsible for
RelayAtofFileSinkConfig and RelayAtofStreamSinkConfig headings to emit a blank
line between each heading and its description, then regenerate
docs/reference/api/python-library-reference/nemo_fabric.models.md so both
affected sections at lines 773-774 and 845-846 are corrected; do not edit the
generated file directly.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: dcb4f0e8-9bb1-40fd-9f3d-a5c38d34480b

📥 Commits

Reviewing files that changed from the base of the PR and between e5845a2 and f2f7c28.

📒 Files selected for processing (2)
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
  • docs/sdk/python.mdx
📜 Review details
⏰ Context from checks skipped due to timeout. (6)
  • GitHub Check: Preview docs
  • GitHub Check: Test (Python 3.12, windows-amd64)
  • GitHub Check: Test (Python 3.14, windows-amd64)
  • GitHub Check: Test (Python 3.13, windows-amd64)
  • GitHub Check: Test (Python 3.11, windows-amd64)
  • GitHub Check: Pre-commit
🧰 Additional context used
📓 Path-based instructions (16)
{README.md,docs/**/*.{md,mdx,yml},examples/**/*.{md,mdx,yml}}

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

Keep package names, repository references, and build commands current in documentation and examples.

Files:

  • docs/sdk/python.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
{docs/**/*.{md,mdx,yml},examples/**/*.{md,mdx,yml}}

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

Update relevant getting-started, reference, adapter, and example documentation when the corresponding examples or adapters change.

Files:

  • docs/sdk/python.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*.mdx

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

In MDX files, use JSX comment delimiters ({/* and */}) for top-of-file comments, including SPDX headers; do not use HTML comments.

Use {/* ... */} delimiters for top-of-file MDX SPDX comments, not HTML comment delimiters.

**/*.mdx: For documentation-site changes, run just docs to regenerate Python and Rust API references and validate Fern configuration.
MDX files must use the specified JSX-comment SPDX header format.

Files:

  • docs/sdk/python.mdx
docs/**/*.{md,mdx,yml}

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

Run just docs when the documentation site changes.

Files:

  • docs/sdk/python.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*

📄 CodeRabbit inference engine (.agents/skills/karpathy-guidelines/SKILL.md)

**/*: Before implementing, explicitly state assumptions, surface ambiguity and tradeoffs, present multiple interpretations when relevant, and ask for clarification rather than silently deciding or proceeding when requirements are unclear.
Prefer the minimum code needed to solve the requested problem: avoid speculative features, unnecessary abstractions, unrequested flexibility, and handling of impossible scenarios; simplify overcomplicated solutions.
When editing existing code, make surgical changes only: do not modify unrelated code, comments, formatting, or pre-existing dead code; match the existing style, and remove only unused imports, variables, or functions introduced by your changes.
Define verifiable success criteria for each task, such as writing regression tests for bugs and invalid-input tests for validation, then verify the implementation against those criteria. For multi-step work, state a brief plan with a verification check for each step.

**/*: Always spell NVIDIA in all caps; do not use Nvidia, nvidia, nVidia, nVIDIA, or NV.
Use an NVIDIA before a noun, because the name begins with an “en” sound.
Do not add a registered trademark symbol after NVIDIA when referring to the company; use trademark symbols with product names only when required by the document type or legal guidance.
Verify official capitalization, spacing, hyphenation, and spelling for NVIDIA and third-party product names; do not rewrite official product names for grammar or title-case rules.
Precede NVIDIA product names with NVIDIA on first mention when natural and accurate, and link the first mention when the destination helps the reader.
On first use, include the company name and full model qualifier when it helps identify the model; preserve official capitalization and punctuation, and use shorter family names only after establishing the full name.
For learning-oriented and developer content, do not force trademark symbols unless explicitly required; for press, ...

Files:

  • docs/sdk/python.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*.{md,mdx,rst}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-guide.md)

**/*.{md,mdx,rst}: For NeMo Fabric documentation, verify technical claims against the current repository, public API, or documented command before reviewing style.
Always spell NVIDIA in all caps; do not use Nvidia, nvidia, or NV.
Format commands, code elements, expressions, package names, file names, and paths as inline code.
Use descriptive link text; avoid raw URLs and weak anchors such as here or read more.
Use title case consistently for technical documentation headings.
Introduce code blocks, lists, tables, and images with complete sentences.
Write procedures as imperative, parallel steps; split long procedures into smaller tasks.
Prefer active voice, present tense, short sentences, contractions, and plain English while preserving necessary technical precision.
Use can for possibility and reserve may for permission.
Use after for temporal relationships instead of once, and prefer refer to over see when directing readers to another resource.
Avoid culture-specific idioms, unnecessary Latinisms, jokes, and marketing exaggeration in technical documentation.
Spell out months in body text, avoid ordinal dates, and use clear time zones.
Spell out whole numbers from zero through nine unless they are technical values, parameters, versions, or UI values; use numerals for 10 or greater and commas in thousands.
Do not add trademark symbols to learning-oriented documentation unless the source, platform, or legal guidance explicitly requires them.
Do not replace precise technical terms with simpler words when doing so would lose precision.
Do not flag passive voice when the actor is unknown or the action is the important part.
Do not rewrite API names, package names, command flags, or code literals for style.

**/*.{md,mdx,rst}: Use consistent title case for technical-document headings and table headers; avoid quotation marks, ampersands, and exclamation marks in headings, while preserving official product, event, research, and whitepaper title ...

Files:

  • docs/sdk/python.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
docs/**/*

📄 CodeRabbit inference engine (AGENTS.md)

Update Fern documentation under docs/ when public behavior, the nemo-fabric package, examples, or supported bindings change.

Files:

  • docs/sdk/python.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
docs/sdk/python.mdx

📄 CodeRabbit inference engine (AGENTS.md)

Keep docs/sdk/python.mdx current when the public Python API changes.

Files:

  • docs/sdk/python.mdx
**/*.{md,mdx}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/SKILL.md)

**/*.{md,mdx}: Use the full product name NVIDIA NeMo Fabric on its first usage, typically in the title or H1; use NeMo Fabric thereafter.
Use fabric by itself only when referring to the CLI tool, and surround those references with backticks.
Capitalize NVIDIA correctly in public documentation.
Format commands, code elements, expressions, file names, paths, and filenames as inline code where needed.
Use title case consistently for headings in technical documentation.
Introduce code blocks, tables, and lists with complete lead-in sentences.
Use descriptive anchor text instead of raw URLs or generic link text such as here.
Prefer active voice, present tense, short sentences, and plain English.
Use consistent terminology for the same concept throughout a document.
Write procedures as imperative, parallel, easy-to-scan steps, and split long sequences into smaller tasks.
Use after instead of once when expressing temporal sequence.
Use can instead of may when the intended meaning is possibility rather than permission.
Avoid ambiguous numeric dates and ordinal dates in body text.
For learning-oriented documentation, do not force trademark symbols unless the source document explicitly requires them.
Introduce examples' code blocks with full sentences and ensure examples match current APIs and build commands.

Update corresponding documentation when public behavior, adapters, examples, or workspace structure changes.

Files:

  • docs/sdk/python.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
{docs/**,README.md,AGENTS.md}

⚙️ CodeRabbit configuration file

{docs/**,README.md,AGENTS.md}: Review documentation for technical accuracy against the current API, command correctness, and consistency with generated schemas.

Files:

  • docs/sdk/python.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
{*.md,**/*.md,**/*.mdx,**/*.ipynb}

⚙️ CodeRabbit configuration file

{*.md,**/*.md,**/*.mdx,**/*.ipynb}: Enforce the product name in user-facing prose: use "NVIDIA NeMo Fabric" on first use and "NeMo Fabric" thereafter. Flag standalone capitalized "Fabric" when it refers to the product. Do not flag the lowercase fabric CLI command, package/import/crate names, code identifiers, API symbols, configuration keys, file paths, or unrelated generic uses of the word.

Files:

  • docs/sdk/python.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*.{md,rst}

📄 CodeRabbit inference engine (.agents/skills/contribute-api/SKILL.md)

Update documentation and examples in the same branch as the public API change.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*.{md,rst,txt,adoc}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-language-mechanics.md)

**/*.{md,rst,txt,adoc}: For technical documentation, use professional, active, conversational, engaging, precise, and plain-English prose. Prefer active voice, present tense, short sentences, and scannable paragraphs. Avoid casual or imprecise language, swearing, threats, insults, jokes, puns, culture-specific idioms, marketing exaggeration, and unsupported third-party comparisons.
Use can for possibility and reserve may for permission; use after for temporal order; use refer to for cross-references; prefer short direct sentences and specific verbs; avoid unnecessary please in technical documentation.
Prefer active voice when the actor matters. Passive voice is acceptable when the actor is unknown or irrelevant, when the action or result is the focus, or in programmer documentation.
Use natural contractions in conversational technical prose, but do not force them in formal legal copy, API references, or generated text.
Prefer simpler English over Latinisms: use for example or such as instead of e.g., and so on instead of etc., that is instead of i.e., compared to instead of vs., and by, through, or using instead of via. Use industry-standard terms such as in silico, in vitro, and in vivo when appropriate, and italicize them in running text.
Use that without commas for essential clauses, and which with commas for nonessential clauses.
Format dates and times clearly: spell out months in body text; use forms such as June 12, 2025; avoid numeric or ordinal dates; capitalize days; use 12-hour time when appropriate; include a space before a.m. or p.m.; use ET and PT for needed time zones; avoid 24/7; and prefer from 12:30 to 1:00 p.m. for prose ranges.
Format numbers consistently: spell out zero through nine in body text, use numerals for 10 or greater and for technical values, use commas in thousands, do not begin a sentence with a numeral, spell out ordinals, and use numerals consistently within a category wh...

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.models.md
docs/reference/api/**

📄 CodeRabbit inference engine (AGENTS.md)

Regenerate or update generated API references under docs/reference/api/ when the public API changes.

Treat all files under docs/reference/api/ as generated output and do not modify them directly.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*.md

📄 CodeRabbit inference engine (CONTRIBUTING.md)

HTML/Markdown source files must use the specified HTML-comment SPDX header format.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*.{py,toml,lock,json,md,yml,yaml}

📄 CodeRabbit inference engine (.agents/skills/contribute-adapter/SKILL.md)

Keep package wiring, descriptors, dependencies, installation, catalogs, CI enumerations, documentation, examples, fixtures, and generated artifacts consistent with the adapter implementation.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.models.md
🪛 markdownlint-cli2 (0.23.0)
docs/reference/api/python-library-reference/nemo_fabric.models.md

[warning] 773-773: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 845-845: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)

🔇 Additional comments (2)
docs/sdk/python.mdx (1)

215-246: LGTM!

docs/reference/api/python-library-reference/nemo_fabric.models.md (1)

56-73: LGTM!

Also applies to: 84-92, 650-663, 784-789, 822-839, 850-864, 898-915, 933-933, 1307-1312, 1629-1635, 1851-1864, 1919-1928

@dagardner-nv dagardner-nv left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Giving this a preliminary approval, but it's marked as a draft.
Change the target branch if you are targeting v0.1


@classmethod
def from_mapping(cls, mapping: Mapping[str, Any]) -> "FabricMapping":
def from_mapping(cls, mapping: Mapping[str, Any]) -> Self:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

...well I just learned something new today

@zhongxuanwang-nv
zhongxuanwang-nv marked this pull request as ready for review July 27, 2026 20:49
@zhongxuanwang-nv
zhongxuanwang-nv requested review from a team as code owners July 27, 2026 20:49

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
tests/docs/test_python_api_docs.py (1)

206-224: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Cover the rendered field descriptions.

The generator emits a Description column, but this test stops after constraints. A dropped, stale, or incorrectly escaped description would pass. Assert the normalized field.description—including pipe escaping—against row["description"].

As per path instructions, tests should cover behavior promised by the changed API surface.

Proposed assertion
         for field_name, field in exported.model_fields.items():
             row = rows[field_name]
+            expected_description = " ".join(
+                (field.description or "—").split()
+            ).replace("|", r"\|")
+            assert row["description"] == expected_description
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tests/docs/test_python_api_docs.py` around lines 206 - 224, Extend the field
assertions in the exported model documentation test to validate the rendered
Description column: normalize each field’s description using the existing
description-rendering or escaping helper, including pipe escaping, and compare
it with row["description"]. Keep the existing required, default, and constraints
checks unchanged.

Source: Path instructions

docs/reference/api/python-library-reference/nemo_fabric.models.md (1)

1926-1926: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Render generated placeholders as inline code.

The RunRequest.request_id default is emitted as raw <generated>, which Markdown can interpret as an HTML tag instead of visible literal text. Fix the enhancer’s default-factory rendering and regenerate this file; do not edit generated output directly.

As per coding guidelines and path instructions, format placeholders and code elements in monospace, and fix generated API references at their source.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/reference/api/python-library-reference/nemo_fabric.models.md` at line
1926, Update the enhancer responsible for rendering default factories so
generated placeholders such as RunRequest.request_id’s “<generated>” are emitted
as inline Markdown code, preserving visible literal text. Then regenerate the
API reference file from the updated source; do not modify the generated Markdown
directly.

Sources: Coding guidelines, Path instructions

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@docs/reference/api/python-library-reference/nemo_fabric.models.md`:
- Line 1926: Update the enhancer responsible for rendering default factories so
generated placeholders such as RunRequest.request_id’s “<generated>” are emitted
as inline Markdown code, preserving visible literal text. Then regenerate the
API reference file from the updated source; do not modify the generated Markdown
directly.

In `@tests/docs/test_python_api_docs.py`:
- Around line 206-224: Extend the field assertions in the exported model
documentation test to validate the rendered Description column: normalize each
field’s description using the existing description-rendering or escaping helper,
including pipe escaping, and compare it with row["description"]. Keep the
existing required, default, and constraints checks unchanged.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 43603ced-5064-46c6-ad64-9bbbf1547edf

📥 Commits

Reviewing files that changed from the base of the PR and between f2f7c28 and 4b43ede.

📒 Files selected for processing (7)
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • scripts/docs/enhance_python_api_reference.py
  • tests/docs/test_python_api_docs.py
📜 Review details
🧰 Additional context used
📓 Path-based instructions (26)
**/*.{md,rst}

📄 CodeRabbit inference engine (.agents/skills/contribute-api/SKILL.md)

Update documentation and examples in the same branch as the public API change.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
{README.md,docs/**/*.{md,mdx,yml},examples/**/*.{md,mdx,yml}}

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

Keep package names, repository references, and build commands current in documentation and examples.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
{docs/**/*.{md,mdx,yml},examples/**/*.{md,mdx,yml}}

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

Update relevant getting-started, reference, adapter, and example documentation when the corresponding examples or adapters change.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
docs/**/*.{md,mdx,yml}

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

Run just docs when the documentation site changes.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*

📄 CodeRabbit inference engine (.agents/skills/karpathy-guidelines/SKILL.md)

**/*: Before implementing, explicitly state assumptions, surface ambiguity and tradeoffs, present multiple interpretations when relevant, and ask for clarification rather than silently deciding or proceeding when requirements are unclear.
Prefer the minimum code needed to solve the requested problem: avoid speculative features, unnecessary abstractions, unrequested flexibility, and handling of impossible scenarios; simplify overcomplicated solutions.
When editing existing code, make surgical changes only: do not modify unrelated code, comments, formatting, or pre-existing dead code; match the existing style, and remove only unused imports, variables, or functions introduced by your changes.
Define verifiable success criteria for each task, such as writing regression tests for bugs and invalid-input tests for validation, then verify the implementation against those criteria. For multi-step work, state a brief plan with a verification check for each step.

**/*: Always spell NVIDIA in all caps; do not use Nvidia, nvidia, nVidia, nVIDIA, or NV.
Use an NVIDIA before a noun, because the name begins with an “en” sound.
Do not add a registered trademark symbol after NVIDIA when referring to the company; use trademark symbols with product names only when required by the document type or legal guidance.
Verify official capitalization, spacing, hyphenation, and spelling for NVIDIA and third-party product names; do not rewrite official product names for grammar or title-case rules.
Precede NVIDIA product names with NVIDIA on first mention when natural and accurate, and link the first mention when the destination helps the reader.
On first use, include the company name and full model qualifier when it helps identify the model; preserve official capitalization and punctuation, and use shorter family names only after establishing the full name.
For learning-oriented and developer content, do not force trademark symbols unless explicitly required; for press, ...

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • scripts/docs/enhance_python_api_reference.py
  • tests/docs/test_python_api_docs.py
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*.{md,mdx,rst}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-guide.md)

**/*.{md,mdx,rst}: For NeMo Fabric documentation, verify technical claims against the current repository, public API, or documented command before reviewing style.
Always spell NVIDIA in all caps; do not use Nvidia, nvidia, or NV.
Format commands, code elements, expressions, package names, file names, and paths as inline code.
Use descriptive link text; avoid raw URLs and weak anchors such as here or read more.
Use title case consistently for technical documentation headings.
Introduce code blocks, lists, tables, and images with complete sentences.
Write procedures as imperative, parallel steps; split long procedures into smaller tasks.
Prefer active voice, present tense, short sentences, contractions, and plain English while preserving necessary technical precision.
Use can for possibility and reserve may for permission.
Use after for temporal relationships instead of once, and prefer refer to over see when directing readers to another resource.
Avoid culture-specific idioms, unnecessary Latinisms, jokes, and marketing exaggeration in technical documentation.
Spell out months in body text, avoid ordinal dates, and use clear time zones.
Spell out whole numbers from zero through nine unless they are technical values, parameters, versions, or UI values; use numerals for 10 or greater and commas in thousands.
Do not add trademark symbols to learning-oriented documentation unless the source, platform, or legal guidance explicitly requires them.
Do not replace precise technical terms with simpler words when doing so would lose precision.
Do not flag passive voice when the actor is unknown or the action is the important part.
Do not rewrite API names, package names, command flags, or code literals for style.

**/*.{md,mdx,rst}: Use consistent title case for technical-document headings and table headers; avoid quotation marks, ampersands, and exclamation marks in headings, while preserving official product, event, research, and whitepaper title ...

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*.{md,rst,txt,adoc}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-language-mechanics.md)

**/*.{md,rst,txt,adoc}: For technical documentation, use professional, active, conversational, engaging, precise, and plain-English prose. Prefer active voice, present tense, short sentences, and scannable paragraphs. Avoid casual or imprecise language, swearing, threats, insults, jokes, puns, culture-specific idioms, marketing exaggeration, and unsupported third-party comparisons.
Use can for possibility and reserve may for permission; use after for temporal order; use refer to for cross-references; prefer short direct sentences and specific verbs; avoid unnecessary please in technical documentation.
Prefer active voice when the actor matters. Passive voice is acceptable when the actor is unknown or irrelevant, when the action or result is the focus, or in programmer documentation.
Use natural contractions in conversational technical prose, but do not force them in formal legal copy, API references, or generated text.
Prefer simpler English over Latinisms: use for example or such as instead of e.g., and so on instead of etc., that is instead of i.e., compared to instead of vs., and by, through, or using instead of via. Use industry-standard terms such as in silico, in vitro, and in vivo when appropriate, and italicize them in running text.
Use that without commas for essential clauses, and which with commas for nonessential clauses.
Format dates and times clearly: spell out months in body text; use forms such as June 12, 2025; avoid numeric or ordinal dates; capitalize days; use 12-hour time when appropriate; include a space before a.m. or p.m.; use ET and PT for needed time zones; avoid 24/7; and prefer from 12:30 to 1:00 p.m. for prose ranges.
Format numbers consistently: spell out zero through nine in body text, use numerals for 10 or greater and for technical values, use commas in thousands, do not begin a sentence with a numeral, spell out ordinals, and use numerals consistently within a category wh...

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
docs/**/*

📄 CodeRabbit inference engine (AGENTS.md)

Update Fern documentation under docs/ when public behavior, the nemo-fabric package, examples, or supported bindings change.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
docs/reference/api/**

📄 CodeRabbit inference engine (AGENTS.md)

Regenerate or update generated API references under docs/reference/api/ when the public API changes.

Treat all files under docs/reference/api/ as generated output and do not modify them directly.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*.{md,mdx}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/SKILL.md)

**/*.{md,mdx}: Use the full product name NVIDIA NeMo Fabric on its first usage, typically in the title or H1; use NeMo Fabric thereafter.
Use fabric by itself only when referring to the CLI tool, and surround those references with backticks.
Capitalize NVIDIA correctly in public documentation.
Format commands, code elements, expressions, file names, paths, and filenames as inline code where needed.
Use title case consistently for headings in technical documentation.
Introduce code blocks, tables, and lists with complete lead-in sentences.
Use descriptive anchor text instead of raw URLs or generic link text such as here.
Prefer active voice, present tense, short sentences, and plain English.
Use consistent terminology for the same concept throughout a document.
Write procedures as imperative, parallel, easy-to-scan steps, and split long sequences into smaller tasks.
Use after instead of once when expressing temporal sequence.
Use can instead of may when the intended meaning is possibility rather than permission.
Avoid ambiguous numeric dates and ordinal dates in body text.
For learning-oriented documentation, do not force trademark symbols unless the source document explicitly requires them.
Introduce examples' code blocks with full sentences and ensure examples match current APIs and build commands.

For docs site changes, run just docs to regenerate Python and Rust API references and validate the Fern configuration.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*.{rs,py,html,md,mdx,toml,yml,yaml,sh,bash}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

All Rust, Python, HTML, Markdown, MDX, TOML, YAML, and shell source files must include the project SPDX copyright and Apache-2.0 license headers using the comment syntax appropriate to each file type.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • scripts/docs/enhance_python_api_reference.py
  • tests/docs/test_python_api_docs.py
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/{README.md,*.md,*.mdx}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Update relevant documentation when changes affect public behavior, adapters, examples, or workspace structure.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*.md

📄 CodeRabbit inference engine (.agents/skills/README.md)

Documentation and examples must be updated consistently with changes to public behavior and reviewed for NVIDIA technical-writing style.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
{docs/**,README.md,AGENTS.md}

⚙️ CodeRabbit configuration file

{docs/**,README.md,AGENTS.md}: Review documentation for technical accuracy against the current API, command correctness, and consistency with generated schemas.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
{*.md,**/*.md,**/*.mdx,**/*.ipynb}

⚙️ CodeRabbit configuration file

{*.md,**/*.md,**/*.mdx,**/*.ipynb}: Enforce the product name in user-facing prose: use "NVIDIA NeMo Fabric" on first use and "NeMo Fabric" thereafter. Flag standalone capitalized "Fabric" when it refers to the product. Do not flag the lowercase fabric CLI command, package/import/crate names, code identifiers, API symbols, configuration keys, file paths, or unrelated generic uses of the word.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*.{rs,py,pyi,json,yaml,yml}

📄 CodeRabbit inference engine (.agents/skills/contribute-api/SKILL.md)

Determine and update every affected public surface, including the CLI, PyO3 bindings, Python SDK, type stubs, schemas, and adapter contract, so they remain in parity.

Files:

  • scripts/docs/enhance_python_api_reference.py
  • tests/docs/test_python_api_docs.py
**/*.{rs,py}

📄 CodeRabbit inference engine (.agents/skills/prepare-pr/SKILL.md)

For native binding changes, run cargo check -p fabric-python --locked.

**/*.{rs,py}: When changing the Rust core or public schemas, run both the Rust and Python test suites.
When adding functionality, include tests in the corresponding Rust crate or the relevant area under tests/.

Files:

  • scripts/docs/enhance_python_api_reference.py
  • tests/docs/test_python_api_docs.py
**/*.{py,pyi}

📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)

If Python code or a Python-facing adapter changes, run just test-python.

Files:

  • scripts/docs/enhance_python_api_reference.py
  • tests/docs/test_python_api_docs.py
**/*.{rs,py,pyi}

📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)

**/*.{rs,py,pyi}: If public configuration types change, confirm schema snapshot tests in just test-rust pass and review generated schema diffs.
For schema or public contract changes, run both language suites and review changes under schemas/ and generated API references.

Files:

  • scripts/docs/enhance_python_api_reference.py
  • tests/docs/test_python_api_docs.py
**/*.{py,pyi,rs}

📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)

For Python SDK or PyO3 binding changes, use python-tests, run focused pytest tests first, then just test-python; rebuild with just build-python when native code or packaging changes.

Files:

  • scripts/docs/enhance_python_api_reference.py
  • tests/docs/test_python_api_docs.py
**/*.{rs,py,toml}

📄 CodeRabbit inference engine (.agents/skills/update-project-version/SKILL.md)

When editing version helpers, verify every nemo-fabric-* workspace package through Cargo metadata and reject a static version in python/pyproject.toml.

Files:

  • scripts/docs/enhance_python_api_reference.py
  • tests/docs/test_python_api_docs.py
**/*.{toml,rs,py}

📄 CodeRabbit inference engine (.agents/skills/update-project-version/SKILL.md)

Avoid blind repository-wide replacement of version-like strings; distinguish package-version references from examples and unrelated dependency versions.

Files:

  • scripts/docs/enhance_python_api_reference.py
  • tests/docs/test_python_api_docs.py
**/*.py

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Use type annotations for public Python APIs.

Files:

  • scripts/docs/enhance_python_api_reference.py
  • tests/docs/test_python_api_docs.py
**/*.{py,rs}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

**/*.{py,rs}: Keep native Python binding declarations synchronized with their Rust implementations.
Use snake_case for functions and variables; use PascalCase for Rust types and Python classes.

Files:

  • scripts/docs/enhance_python_api_reference.py
  • tests/docs/test_python_api_docs.py
tests/**/*.py

📄 CodeRabbit inference engine (.agents/skills/python-tests/SKILL.md)

tests/**/*.py: Use Pytest to run Python tests.
Do not add @pytest.mark.asyncio to tests; async tests are automatically detected and run by the async runner.
Do not add -> None return type annotations to test functions.
When mocking a class, use unittest.mock.MagicMock or unittest.mock.AsyncMock, using the spec argument when necessary, rather than defining a new class.
Prefix mocked class names with mock, not fake.
Prefer pytest fixtures over helper methods.
Do not repeat fixtures; place fixtures needed by multiple test files in conftest.py.
Define fixtures using @pytest.fixture(name="<fixture_name>"[, scope="<scope>"]) and a function named <fixture_name>_fixture; specify scope only when it is not function.
Prefer pytest.mark.parametrize over separate tests for different input types.
Use @pytest.mark.usefixtures when a fixture is needed but its return value is unused or it does not return a value.
Use the autouse restore_environ_fixture from tests/conftest.py to restore environment variables; modify variables with os.environ and do not use monkeypatch.setenv.
Avoid defensive programming in tests; access expected data directly so missing data raises a clear failure, such as using results["data"] instead of results.get("data").

Files:

  • tests/docs/test_python_api_docs.py
{tests/**,python/tests/**}

⚙️ CodeRabbit configuration file

{tests/**,python/tests/**}: Tests should cover the behavior promised by the changed API surface, including error paths, lifecycle cleanup, and SDK/native parity where relevant.

Files:

  • tests/docs/test_python_api_docs.py
🔇 Additional comments (10)
docs/reference/api/python-library-reference/nemo_fabric.client.md (2)

4-4: Use the full product name on first mention.

This generated page still starts with NeMo Fabric; update the source description to NVIDIA NeMo Fabric and regenerate the page. This is the same unresolved finding from the previous review.

As per coding guidelines and path instructions, use the full product name NVIDIA NeMo Fabric on first use and fix generated API references at their source.

Sources: Coding guidelines, Path instructions


35-39: LGTM!

Also applies to: 71-75, 107-113, 148-153

docs/reference/api/python-library-reference/nemo_fabric.models.md (2)

4-4: Use the full product name on first mention.

This generated page still starts with NeMo Fabric; update the source description to NVIDIA NeMo Fabric and regenerate the page. This is the same unresolved finding from the previous review.

As per coding guidelines and path instructions, use the full product name NVIDIA NeMo Fabric on first use and fix generated API references at their source.

Sources: Coding guidelines, Path instructions


59-70: LGTM!

Also applies to: 83-140, 153-211, 224-282, 297-360, 373-433, 446-524, 537-595, 608-693, 706-764, 777-836, 849-912, 925-982, 995-1059, 1072-1132, 1145-1209, 1222-1287, 1300-1361, 1374-1432, 1445-1505, 1518-1574, 1587-1676, 1690-1746, 1759-1913, 1918-1925, 1927-1977

tests/docs/test_python_api_docs.py (2)

162-183: Assert the complete rendered signature contract.

The loop only checks async status and keyword-only markers. Wrong parameter names, annotations, defaults, return types, or missing parameters can still pass. Compare a normalized expected signature derived from inspect.signature(member) with rendered, as requested in the previous review.

As per path instructions, tests should cover behavior promised by the changed API surface.

Source: Path instructions


8-24: LGTM!

Also applies to: 42-56, 77-105, 227-244, 245-261

scripts/docs/enhance_python_api_reference.py (1)

1-27: LGTM!

Also applies to: 29-56, 58-110, 112-156, 158-168, 170-203, 205-223, 225-255, 257-270, 272-306, 308-316

docs/reference/api/python-library-reference/nemo_fabric.errors.md (1)

32-47: LGTM!

Also applies to: 73-88, 114-129, 155-170, 196-211, 237-252

docs/reference/api/python-library-reference/nemo_fabric.runtime.md (1)

26-40: LGTM!

Also applies to: 90-90, 124-124

docs/reference/api/python-library-reference/nemo_fabric.types.md (1)

30-89: LGTM!

Also applies to: 114-174, 197-257, 279-338, 359-417, 440-500, 523-583, 603-660, 683-743, 766-826, 853-915, 930-992, 1026-1095

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (4)
docs/integrations/harness/codex.mdx (1)

166-167: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Align the documented Relay compatibility window.

The Codex and SDK pages must consistently document the supported CLI range and keep installation guidance within that range.

  • docs/integrations/harness/codex.mdx#L166-L167: Pin the documented Relay CLI installation or retain an explicit 0.6.0 <= version < 0.7.0 warning before removing the caveat.
  • docs/sdk/python.mdx#L443-L444: Replace “0.6.0 or later” with the same bounded compatibility range.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/integrations/harness/codex.mdx` around lines 166 - 167, Align the Relay
CLI compatibility guidance across both documentation sites: in
docs/integrations/harness/codex.mdx lines 166-167, pin the installation version
or retain an explicit 0.6.0 <= version < 0.7.0 warning; in docs/sdk/python.mdx
lines 443-444, replace “0.6.0 or later” with the same bounded range.

Source: Path instructions

docs/sdk/python.mdx (1)

445-445: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Use a relative docs link here. Replace /getting-started/install#nemo-relay-cli with ../getting-started/install.mdx#nemo-relay-cli; the generated ../reference/api/python-library-reference/nemo_fabric.models.md target is the expected reference link.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/sdk/python.mdx` at line 445, Update the docs link in docs/sdk/python.mdx
at lines 445-445 and 625-625 to use the relative target
../getting-started/install.mdx#nemo-relay-cli instead of the root-relative URL,
preserving the existing link text.

Source: Path instructions

tests/docs/test_python_api_docs.py (1)

282-294: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Remove -> None from the new test functions.

As per coding guidelines, test functions under tests/**/*.py must not add -> None return annotations. Remove the annotations from both newly added tests.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tests/docs/test_python_api_docs.py` around lines 282 - 294, Remove the ->
None return annotations from both new test functions,
test_generated_reference_uses_markdown_spdx_comments and
test_generated_reference_uses_full_relay_name_once_per_page, while leaving their
test logic unchanged.

Source: Coding guidelines

scripts/generate_api_docs.sh (1)

43-45: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Normalize generated heading spacing at the source.

The generator fixes spacing for selected model headings but leaves the new streaming module and class headings without required blank lines, so regenerated output fails MD022.

  • scripts/generate_api_docs.sh#L43-L45: Extend heading normalization to generated module and class headings, not only the three model classes.
  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md#L9-L18: Regenerate the page after the upstream fix so blank lines follow the module and class headings.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@scripts/generate_api_docs.sh` around lines 43 - 45, Extend the
heading-spacing normalization in the generator command near the existing
model-class pattern to also match the module and class headings emitted in
nemo_fabric.streaming.md, preserving the blank-line insertion behavior.
Regenerate docs/reference/api/python-library-reference/nemo_fabric.streaming.md
so the module and class headings have the required blank lines; this generated
file requires no independent logic change.

Source: Linters/SAST tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@tests/docs/test_python_api_docs.py`:
- Around line 175-180: Replace the exec-based signature evaluation in the test’s
rendered signature validation with a non-executing AST or equivalent parser for
the Markdown-derived rendered definition. Extract and compare the parsed
signature structure against inspect.signature for member_name, while preserving
the existing namespace and validation behavior without evaluating default
expressions.

---

Outside diff comments:
In `@docs/integrations/harness/codex.mdx`:
- Around line 166-167: Align the Relay CLI compatibility guidance across both
documentation sites: in docs/integrations/harness/codex.mdx lines 166-167, pin
the installation version or retain an explicit 0.6.0 <= version < 0.7.0 warning;
in docs/sdk/python.mdx lines 443-444, replace “0.6.0 or later” with the same
bounded range.

In `@docs/sdk/python.mdx`:
- Line 445: Update the docs link in docs/sdk/python.mdx at lines 445-445 and
625-625 to use the relative target ../getting-started/install.mdx#nemo-relay-cli
instead of the root-relative URL, preserving the existing link text.

In `@scripts/generate_api_docs.sh`:
- Around line 43-45: Extend the heading-spacing normalization in the generator
command near the existing model-class pattern to also match the module and class
headings emitted in nemo_fabric.streaming.md, preserving the blank-line
insertion behavior. Regenerate
docs/reference/api/python-library-reference/nemo_fabric.streaming.md so the
module and class headings have the required blank lines; this generated file
requires no independent logic change.

In `@tests/docs/test_python_api_docs.py`:
- Around line 282-294: Remove the -> None return annotations from both new test
functions, test_generated_reference_uses_markdown_spdx_comments and
test_generated_reference_uses_full_relay_name_once_per_page, while leaving their
test logic unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: d74a7f2b-3c4c-4060-a8a2-2f4508eb69f1

📥 Commits

Reviewing files that changed from the base of the PR and between 4b43ede and 8cc5497.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (16)
  • crates/fabric-cli/src/scaffold.rs
  • docs/getting-started/install.mdx
  • docs/integrations/harness/codex.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/sdk/python.mdx
  • python/src/nemo_fabric/types.py
  • scripts/docs/enhance_python_api_reference.py
  • scripts/generate_api_docs.sh
  • skills/integrations/consumer/nemo-fabric-integrate/references/sdk-api-inventory.md
  • tests/docs/test_python_api_docs.py
  • tests/e2e/test_cli_scaffold.py
📜 Review details
🧰 Additional context used
📓 Path-based instructions (36)
{README.md,docs/**/*.{md,mdx,yml},examples/**/*.{md,mdx,yml}}

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

Keep package names, repository references, and build commands current in documentation and examples.

Files:

  • docs/getting-started/install.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/sdk/python.mdx
  • docs/integrations/harness/codex.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
{docs/**/*.{md,mdx,yml},examples/**/*.{md,mdx,yml}}

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

Update relevant getting-started, reference, adapter, and example documentation when the corresponding examples or adapters change.

Files:

  • docs/getting-started/install.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/sdk/python.mdx
  • docs/integrations/harness/codex.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*.mdx

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

In MDX files, use JSX comment delimiters ({/* and */}) for top-of-file comments, including SPDX headers; do not use HTML comments.

Use {/* ... */} delimiters for top-of-file MDX SPDX comments, not HTML comment delimiters.

Files:

  • docs/getting-started/install.mdx
  • docs/sdk/python.mdx
  • docs/integrations/harness/codex.mdx
docs/**/*.{md,mdx,yml}

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

Run just docs when the documentation site changes.

Files:

  • docs/getting-started/install.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/sdk/python.mdx
  • docs/integrations/harness/codex.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*

📄 CodeRabbit inference engine (.agents/skills/karpathy-guidelines/SKILL.md)

**/*: Before implementing, explicitly state assumptions, surface ambiguity and tradeoffs, present multiple interpretations when relevant, and ask for clarification rather than silently deciding or proceeding when requirements are unclear.
Prefer the minimum code needed to solve the requested problem: avoid speculative features, unnecessary abstractions, unrequested flexibility, and handling of impossible scenarios; simplify overcomplicated solutions.
When editing existing code, make surgical changes only: do not modify unrelated code, comments, formatting, or pre-existing dead code; match the existing style, and remove only unused imports, variables, or functions introduced by your changes.
Define verifiable success criteria for each task, such as writing regression tests for bugs and invalid-input tests for validation, then verify the implementation against those criteria. For multi-step work, state a brief plan with a verification check for each step.

**/*: Always spell NVIDIA in all caps; do not use Nvidia, nvidia, nVidia, nVIDIA, or NV.
Use an NVIDIA before a noun, because the name begins with an “en” sound.
Do not add a registered trademark symbol after NVIDIA when referring to the company; use trademark symbols with product names only when required by the document type or legal guidance.
Verify official capitalization, spacing, hyphenation, and spelling for NVIDIA and third-party product names; do not rewrite official product names for grammar or title-case rules.
Precede NVIDIA product names with NVIDIA on first mention when natural and accurate, and link the first mention when the destination helps the reader.
On first use, include the company name and full model qualifier when it helps identify the model; preserve official capitalization and punctuation, and use shorter family names only after establishing the full name.
For learning-oriented and developer content, do not force trademark symbols unless explicitly required; for press, ...

Files:

  • docs/getting-started/install.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • scripts/generate_api_docs.sh
  • python/src/nemo_fabric/types.py
  • tests/e2e/test_cli_scaffold.py
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/sdk/python.mdx
  • scripts/docs/enhance_python_api_reference.py
  • skills/integrations/consumer/nemo-fabric-integrate/references/sdk-api-inventory.md
  • docs/integrations/harness/codex.mdx
  • crates/fabric-cli/src/scaffold.rs
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • tests/docs/test_python_api_docs.py
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*.{md,mdx,rst}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-guide.md)

**/*.{md,mdx,rst}: For NeMo Fabric documentation, verify technical claims against the current repository, public API, or documented command before reviewing style.
Always spell NVIDIA in all caps; do not use Nvidia, nvidia, or NV.
Format commands, code elements, expressions, package names, file names, and paths as inline code.
Use descriptive link text; avoid raw URLs and weak anchors such as here or read more.
Use title case consistently for technical documentation headings.
Introduce code blocks, lists, tables, and images with complete sentences.
Write procedures as imperative, parallel steps; split long procedures into smaller tasks.
Prefer active voice, present tense, short sentences, contractions, and plain English while preserving necessary technical precision.
Use can for possibility and reserve may for permission.
Use after for temporal relationships instead of once, and prefer refer to over see when directing readers to another resource.
Avoid culture-specific idioms, unnecessary Latinisms, jokes, and marketing exaggeration in technical documentation.
Spell out months in body text, avoid ordinal dates, and use clear time zones.
Spell out whole numbers from zero through nine unless they are technical values, parameters, versions, or UI values; use numerals for 10 or greater and commas in thousands.
Do not add trademark symbols to learning-oriented documentation unless the source, platform, or legal guidance explicitly requires them.
Do not replace precise technical terms with simpler words when doing so would lose precision.
Do not flag passive voice when the actor is unknown or the action is the important part.
Do not rewrite API names, package names, command flags, or code literals for style.

**/*.{md,mdx,rst}: Use consistent title case for technical-document headings and table headers; avoid quotation marks, ampersands, and exclamation marks in headings, while preserving official product, event, research, and whitepaper title ...

Files:

  • docs/getting-started/install.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/sdk/python.mdx
  • skills/integrations/consumer/nemo-fabric-integrate/references/sdk-api-inventory.md
  • docs/integrations/harness/codex.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
docs/**/*

📄 CodeRabbit inference engine (AGENTS.md)

Update Fern documentation under docs/ when public behavior, the nemo-fabric package, examples, or supported bindings change.

Files:

  • docs/getting-started/install.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/sdk/python.mdx
  • docs/integrations/harness/codex.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*.{md,mdx}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/SKILL.md)

**/*.{md,mdx}: Use the full product name NVIDIA NeMo Fabric on its first usage, typically in the title or H1; use NeMo Fabric thereafter.
Use fabric by itself only when referring to the CLI tool, and surround those references with backticks.
Capitalize NVIDIA correctly in public documentation.
Format commands, code elements, expressions, file names, paths, and filenames as inline code where needed.
Use title case consistently for headings in technical documentation.
Introduce code blocks, tables, and lists with complete lead-in sentences.
Use descriptive anchor text instead of raw URLs or generic link text such as here.
Prefer active voice, present tense, short sentences, and plain English.
Use consistent terminology for the same concept throughout a document.
Write procedures as imperative, parallel, easy-to-scan steps, and split long sequences into smaller tasks.
Use after instead of once when expressing temporal sequence.
Use can instead of may when the intended meaning is possibility rather than permission.
Avoid ambiguous numeric dates and ordinal dates in body text.
For learning-oriented documentation, do not force trademark symbols unless the source document explicitly requires them.
Introduce examples' code blocks with full sentences and ensure examples match current APIs and build commands.

For docs site changes, run just docs to regenerate Python and Rust API references and validate the Fern configuration.

Files:

  • docs/getting-started/install.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/sdk/python.mdx
  • skills/integrations/consumer/nemo-fabric-integrate/references/sdk-api-inventory.md
  • docs/integrations/harness/codex.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*.{rs,py,html,md,mdx,toml,yml,yaml,sh,bash}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

All Rust, Python, HTML, Markdown, MDX, TOML, YAML, and shell source files must include the project SPDX copyright and Apache-2.0 license headers using the comment syntax appropriate to each file type.

Files:

  • docs/getting-started/install.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • scripts/generate_api_docs.sh
  • python/src/nemo_fabric/types.py
  • tests/e2e/test_cli_scaffold.py
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/sdk/python.mdx
  • scripts/docs/enhance_python_api_reference.py
  • skills/integrations/consumer/nemo-fabric-integrate/references/sdk-api-inventory.md
  • docs/integrations/harness/codex.mdx
  • crates/fabric-cli/src/scaffold.rs
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • tests/docs/test_python_api_docs.py
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/{README.md,*.md,*.mdx}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Update relevant documentation when changes affect public behavior, adapters, examples, or workspace structure.

Files:

  • docs/getting-started/install.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/sdk/python.mdx
  • skills/integrations/consumer/nemo-fabric-integrate/references/sdk-api-inventory.md
  • docs/integrations/harness/codex.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
{docs/**,README.md,AGENTS.md}

⚙️ CodeRabbit configuration file

{docs/**,README.md,AGENTS.md}: Review documentation for technical accuracy against the current API, command correctness, and consistency with generated schemas.
For links between files under docs/, require paths relative to the source file with the target file's .mdx extension so they work in both Fern builds and repository browsers. Flag Fern site-root links such as NeMo Fabric overview; use the repository-relative equivalent, such as NeMo Fabric overview.

Files:

  • docs/getting-started/install.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/sdk/python.mdx
  • docs/integrations/harness/codex.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
{*.md,**/*.md,**/*.mdx,**/*.ipynb}

⚙️ CodeRabbit configuration file

{*.md,**/*.md,**/*.mdx,**/*.ipynb}: Enforce the product name in user-facing prose: use "NVIDIA NeMo Fabric" on first use and "NeMo Fabric" thereafter. Flag standalone capitalized "Fabric" when it refers to the product. Do not flag the lowercase fabric CLI command, package/import/crate names, code identifiers, API symbols, configuration keys, file paths, or unrelated generic uses of the word.

Files:

  • docs/getting-started/install.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/sdk/python.mdx
  • skills/integrations/consumer/nemo-fabric-integrate/references/sdk-api-inventory.md
  • docs/integrations/harness/codex.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*.{md,rst}

📄 CodeRabbit inference engine (.agents/skills/contribute-api/SKILL.md)

Update documentation and examples in the same branch as the public API change.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • skills/integrations/consumer/nemo-fabric-integrate/references/sdk-api-inventory.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*.{md,rst,txt,adoc}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-language-mechanics.md)

**/*.{md,rst,txt,adoc}: For technical documentation, use professional, active, conversational, engaging, precise, and plain-English prose. Prefer active voice, present tense, short sentences, and scannable paragraphs. Avoid casual or imprecise language, swearing, threats, insults, jokes, puns, culture-specific idioms, marketing exaggeration, and unsupported third-party comparisons.
Use can for possibility and reserve may for permission; use after for temporal order; use refer to for cross-references; prefer short direct sentences and specific verbs; avoid unnecessary please in technical documentation.
Prefer active voice when the actor matters. Passive voice is acceptable when the actor is unknown or irrelevant, when the action or result is the focus, or in programmer documentation.
Use natural contractions in conversational technical prose, but do not force them in formal legal copy, API references, or generated text.
Prefer simpler English over Latinisms: use for example or such as instead of e.g., and so on instead of etc., that is instead of i.e., compared to instead of vs., and by, through, or using instead of via. Use industry-standard terms such as in silico, in vitro, and in vivo when appropriate, and italicize them in running text.
Use that without commas for essential clauses, and which with commas for nonessential clauses.
Format dates and times clearly: spell out months in body text; use forms such as June 12, 2025; avoid numeric or ordinal dates; capitalize days; use 12-hour time when appropriate; include a space before a.m. or p.m.; use ET and PT for needed time zones; avoid 24/7; and prefer from 12:30 to 1:00 p.m. for prose ranges.
Format numbers consistently: spell out zero through nine in body text, use numerals for 10 or greater and for technical values, use commas in thousands, do not begin a sentence with a numeral, spell out ordinals, and use numerals consistently within a category wh...

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • skills/integrations/consumer/nemo-fabric-integrate/references/sdk-api-inventory.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
docs/reference/api/**

📄 CodeRabbit inference engine (AGENTS.md)

Regenerate or update generated API references under docs/reference/api/ when the public API changes.

Treat all files under docs/reference/api/ as generated output and do not modify them directly.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*.md

📄 CodeRabbit inference engine (.agents/skills/README.md)

Documentation and examples must be updated consistently with changes to public behavior and reviewed for NVIDIA technical-writing style.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • skills/integrations/consumer/nemo-fabric-integrate/references/sdk-api-inventory.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
scripts/generate_api_docs.sh

📄 CodeRabbit inference engine (AGENTS.md)

Keep the stable public wrapper scripts/generate_api_docs.sh at the scripts/ root and reference it in docs and examples; use namespaced paths under scripts/docs/ only for internal maintenance documentation.

For Python API reference changes, update scripts/generate_api_docs.sh when the generator itself requires changes.

Files:

  • scripts/generate_api_docs.sh
**/*.{rs,py,pyi,json,yaml,yml}

📄 CodeRabbit inference engine (.agents/skills/contribute-api/SKILL.md)

Determine and update every affected public surface, including the CLI, PyO3 bindings, Python SDK, type stubs, schemas, and adapter contract, so they remain in parity.

Files:

  • python/src/nemo_fabric/types.py
  • tests/e2e/test_cli_scaffold.py
  • scripts/docs/enhance_python_api_reference.py
  • crates/fabric-cli/src/scaffold.rs
  • tests/docs/test_python_api_docs.py
python/src/nemo_fabric/**

📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)

Ensure the editable maturin build continues to produce the native extension at nemo_fabric._native, with generated artifacts placed where downstream consumers expect.

Files:

  • python/src/nemo_fabric/types.py
**/*.{rs,py}

📄 CodeRabbit inference engine (.agents/skills/prepare-pr/SKILL.md)

For native binding changes, run cargo check -p fabric-python --locked.

**/*.{rs,py}: When changing the Rust core or public schemas, run both the Rust and Python test suites.
When adding functionality, include tests in the corresponding Rust crate or the relevant area under tests/.

Files:

  • python/src/nemo_fabric/types.py
  • tests/e2e/test_cli_scaffold.py
  • scripts/docs/enhance_python_api_reference.py
  • crates/fabric-cli/src/scaffold.rs
  • tests/docs/test_python_api_docs.py
python/src/nemo_fabric/**/*.py

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/SKILL.md)

For Python API reference changes, update source docstrings under python/src/nemo_fabric/ instead of editing generated reference output.

Files:

  • python/src/nemo_fabric/types.py
**/*.{py,pyi}

📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)

If Python code or a Python-facing adapter changes, run just test-python.

Files:

  • python/src/nemo_fabric/types.py
  • tests/e2e/test_cli_scaffold.py
  • scripts/docs/enhance_python_api_reference.py
  • tests/docs/test_python_api_docs.py
**/*.{rs,py,pyi}

📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)

**/*.{rs,py,pyi}: If public configuration types change, confirm schema snapshot tests in just test-rust pass and review generated schema diffs.
For schema or public contract changes, run both language suites and review changes under schemas/ and generated API references.

Files:

  • python/src/nemo_fabric/types.py
  • tests/e2e/test_cli_scaffold.py
  • scripts/docs/enhance_python_api_reference.py
  • crates/fabric-cli/src/scaffold.rs
  • tests/docs/test_python_api_docs.py
**/*.{py,pyi,rs}

📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)

For Python SDK or PyO3 binding changes, use python-tests, run focused pytest tests first, then just test-python; rebuild with just build-python when native code or packaging changes.

Files:

  • python/src/nemo_fabric/types.py
  • tests/e2e/test_cli_scaffold.py
  • scripts/docs/enhance_python_api_reference.py
  • crates/fabric-cli/src/scaffold.rs
  • tests/docs/test_python_api_docs.py
**/*.{rs,py,toml}

📄 CodeRabbit inference engine (.agents/skills/update-project-version/SKILL.md)

When editing version helpers, verify every nemo-fabric-* workspace package through Cargo metadata and reject a static version in python/pyproject.toml.

Files:

  • python/src/nemo_fabric/types.py
  • tests/e2e/test_cli_scaffold.py
  • scripts/docs/enhance_python_api_reference.py
  • crates/fabric-cli/src/scaffold.rs
  • tests/docs/test_python_api_docs.py
**/*.{toml,rs,py}

📄 CodeRabbit inference engine (.agents/skills/update-project-version/SKILL.md)

Avoid blind repository-wide replacement of version-like strings; distinguish package-version references from examples and unrelated dependency versions.

Files:

  • python/src/nemo_fabric/types.py
  • tests/e2e/test_cli_scaffold.py
  • scripts/docs/enhance_python_api_reference.py
  • crates/fabric-cli/src/scaffold.rs
  • tests/docs/test_python_api_docs.py
**/*.py

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Use type annotations for public Python APIs.

Files:

  • python/src/nemo_fabric/types.py
  • tests/e2e/test_cli_scaffold.py
  • scripts/docs/enhance_python_api_reference.py
  • tests/docs/test_python_api_docs.py
**/*.{py,rs}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

**/*.{py,rs}: Keep native Python binding declarations synchronized with their Rust implementations.
Use snake_case for functions and variables; use PascalCase for Rust types and Python classes.

Files:

  • python/src/nemo_fabric/types.py
  • tests/e2e/test_cli_scaffold.py
  • scripts/docs/enhance_python_api_reference.py
  • crates/fabric-cli/src/scaffold.rs
  • tests/docs/test_python_api_docs.py
python/src/nemo_fabric/**/*

⚙️ CodeRabbit configuration file

python/src/nemo_fabric/**/*: Review Python SDK changes for typed API consistency, import-time dependency neutrality, async/session behavior, and parity with the native extension.
Stubs and runtime implementations should stay aligned.

Files:

  • python/src/nemo_fabric/types.py
tests/**/*.py

📄 CodeRabbit inference engine (.agents/skills/python-tests/SKILL.md)

tests/**/*.py: Use Pytest to run Python tests.
Do not add @pytest.mark.asyncio to tests; async tests are automatically detected and run by the async runner.
Do not add -> None return type annotations to test functions.
When mocking a class, use unittest.mock.MagicMock or unittest.mock.AsyncMock, using the spec argument when necessary, rather than defining a new class.
Prefix mocked class names with mock, not fake.
Prefer pytest fixtures over helper methods.
Do not repeat fixtures; place fixtures needed by multiple test files in conftest.py.
Define fixtures using @pytest.fixture(name="<fixture_name>"[, scope="<scope>"]) and a function named <fixture_name>_fixture; specify scope only when it is not function.
Prefer pytest.mark.parametrize over separate tests for different input types.
Use @pytest.mark.usefixtures when a fixture is needed but its return value is unused or it does not return a value.
Use the autouse restore_environ_fixture from tests/conftest.py to restore environment variables; modify variables with os.environ and do not use monkeypatch.setenv.
Avoid defensive programming in tests; access expected data directly so missing data raises a clear failure, such as using results["data"] instead of results.get("data").

Files:

  • tests/e2e/test_cli_scaffold.py
  • tests/docs/test_python_api_docs.py
{tests/**,python/tests/**}

⚙️ CodeRabbit configuration file

{tests/**,python/tests/**}: Tests should cover the behavior promised by the changed API surface, including error paths, lifecycle cleanup, and SDK/native parity where relevant.

Files:

  • tests/e2e/test_cli_scaffold.py
  • tests/docs/test_python_api_docs.py
docs/sdk/python.mdx

📄 CodeRabbit inference engine (AGENTS.md)

Keep docs/sdk/python.mdx current when the public Python API changes.

Files:

  • docs/sdk/python.mdx
skills/**

📄 CodeRabbit inference engine (AGENTS.md)

skills/**: Keep consumer skills under skills/ self-contained and dependent only on supported public Python SDK contracts and published documentation; do not add repository-internal contribution guidance.
Keep consumer skills in parity with the public SDK guide, model, and type details when the Python/Rust binding contract changes.

Files:

  • skills/integrations/consumer/nemo-fabric-integrate/references/sdk-api-inventory.md
**/*.rs

📄 CodeRabbit inference engine (.agents/skills/contribute-api/SKILL.md)

Implement new runtime or binding behavior in the shared Rust core first.

**/*.rs: Format Rust code with cargo fmt --all; Rust formatting checks must pass with cargo fmt --all -- --check.
Rust workspace changes must pass cargo check --workspace --locked.

Files:

  • crates/fabric-cli/src/scaffold.rs
**/*.{rs,toml}

📄 CodeRabbit inference engine (.agents/skills/prepare-pr/SKILL.md)

For any Rust change, run just test-rust and cargo fmt --all -- --check.

For Rust core, CLI, or shared runtime semantic changes, run Rust formatting and tests, and add Python tests when behavior is exposed through the SDK.

Files:

  • crates/fabric-cli/src/scaffold.rs
**/*.{rs,rmeta}

📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)

If Rust code changes, run cargo fmt --all -- --check and just test-rust.

Files:

  • crates/fabric-cli/src/scaffold.rs
🧠 Learnings (1)
📚 Learning: 2026-06-28T04:03:32.877Z
Learnt from: AjayThorve
Repo: NVIDIA/NeMo-Fabric PR: 26
File: python/tests/smoke_typed_config.py:163-177
Timestamp: 2026-06-28T04:03:32.877Z
Learning: In NVIDIA NeMo Fabric Python SDK serialization of `RuntimeCapabilities` (to satisfy the “parity contract” with Rust core and the CLI), do not emit metadata keys when the corresponding metadata is absent. Instead, omit those fields entirely so the produced JSON matches the Rust/CLI output (e.g., avoid `null`, empty objects, or placeholder metadata). During review, verify the serializer/builders follow this omission rule and that Python outputs/parity tests reflect the same shape.

Applied to files:

  • python/src/nemo_fabric/types.py
🪛 ast-grep (0.44.1)
tests/docs/test_python_api_docs.py

[error] 175-178: The use of exec can be insecure
Context: exec(
f"from future import annotations\n{rendered}:\n pass\n",
namespace,
)
Note: [CWE-94] Improper Control of Generation of Code ('Code Injection').

(no-exec)

🪛 markdownlint-cli2 (0.23.0)
docs/reference/api/python-library-reference/nemo_fabric.streaming.md

[warning] 9-9: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 17-17: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)

🪛 Ruff (0.15.21)
tests/docs/test_python_api_docs.py

[error] 176-176: Use of exec detected

(S102)

🔇 Additional comments (16)
crates/fabric-cli/src/scaffold.rs (1)

115-133: LGTM!

Also applies to: 329-331, 335-392, 394-399

tests/e2e/test_cli_scaffold.py (1)

73-77: LGTM!

docs/getting-started/install.mdx (1)

27-27: LGTM!

docs/integrations/harness/codex.mdx (1)

12-36: LGTM!

Also applies to: 43-46, 89-93

docs/sdk/python.mdx (2)

22-22: LGTM!

Also applies to: 141-144, 192-193, 215-216, 248-250, 271-275, 338-442, 446-448, 501-501, 548-550, 570-570


581-591: 🗄️ Data Integrity & Integration

Verify the metadata contract before publishing it.

The changed text asserts that FabricConfig.metadata stays in resolved configuration and is not copied to RunResult.metadata. The supplied snippets confirm request_id and RunRequest.context correlation, but do not establish this metadata-copying behavior. Verify resolution and result construction, plus regression coverage, before treating this as a public contract.

As per path instructions, documentation must be technically accurate against the current API and generated schemas.

Source: Path instructions

skills/integrations/consumer/nemo-fabric-integrate/references/sdk-api-inventory.md (1)

13-16: LGTM!

Also applies to: 25-25, 27-27, 40-43, 63-63

python/src/nemo_fabric/types.py (1)

16-16: LGTM!

Also applies to: 821-821, 1087-1087

scripts/docs/enhance_python_api_reference.py (1)

18-24: LGTM!

Also applies to: 30-42, 44-57, 59-88, 90-110, 113-156, 159-169, 171-204, 206-224, 226-240, 242-256, 258-271, 273-307, 309-317, 319-327

scripts/generate_api_docs.sh (1)

26-29: LGTM!

Also applies to: 46-52, 64-65, 79-94, 107-110

tests/docs/test_python_api_docs.py (1)

8-24: LGTM!

Also applies to: 43-57, 78-109, 205-280, 297-310, 312-336

docs/reference/api/python-library-reference/nemo_fabric.client.md (1)

4-4: LGTM!

Also applies to: 35-39, 71-75, 107-113, 148-181

docs/reference/api/python-library-reference/nemo_fabric.errors.md (1)

6-7: LGTM!

Also applies to: 32-47, 73-88, 114-129, 155-170, 196-211, 237-252

docs/reference/api/python-library-reference/nemo_fabric.models.md (1)

4-4: LGTM!

Also applies to: 59-70, 83-140, 153-211, 224-282, 297-360, 373-433, 446-524, 537-595, 608-693, 706-764, 775-845, 848-923, 924-992, 994-1069, 1071-1142, 1144-1219, 1221-1297, 1299-1364, 1373-1442, 1444-1515, 1517-1584, 1586-1686, 1689-1750, 1758-1915, 1917-1980

docs/reference/api/python-library-reference/nemo_fabric.runtime.md (1)

6-7: LGTM!

Also applies to: 26-40, 96-96, 130-134, 155-155

docs/reference/api/python-library-reference/nemo_fabric.types.md (1)

6-7: LGTM!

Also applies to: 30-89, 114-174, 197-257, 279-338, 359-417, 440-500, 523-583, 603-660, 683-743, 766-826, 853-915, 930-992, 1026-1095

Comment thread tests/docs/test_python_api_docs.py Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
tests/docs/test_python_api_docs.py (1)

178-189: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Compare documented members with the runtime member set.

This assertion compares two lists extracted from the same Markdown section, so a public method omitted entirely from the page is invisible: both lists shrink and the test still passes. Derive the expected method/classmethod names from exported_class using the generator’s public-member rules, then compare that set and order with documented_members.

As per path instructions, tests should cover the behavior promised by the changed API surface, including error paths, lifecycle cleanup, and SDK/native parity where relevant.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tests/docs/test_python_api_docs.py` around lines 178 - 189, Update the member
documentation assertion in the class loop to derive expected public method and
classmethod names from exported_class using the generator’s existing
public-member rules, rather than extracting both sides from the Markdown
section. Compare that runtime-derived ordered list with documented_members,
preserving the existing signature ordering and coverage of omitted members.

Source: Path instructions

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@tests/python/test_typed_config.py`:
- Line 126: Update the assertion in the typed-config test to use direct indexing
with result["status"] in its failure message instead of result.get("status"),
ensuring missing status data raises a clear failure.

---

Outside diff comments:
In `@tests/docs/test_python_api_docs.py`:
- Around line 178-189: Update the member documentation assertion in the class
loop to derive expected public method and classmethod names from exported_class
using the generator’s existing public-member rules, rather than extracting both
sides from the Markdown section. Compare that runtime-derived ordered list with
documented_members, preserving the existing signature ordering and coverage of
omitted members.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 6d87cd78-8c88-44c5-b99f-6e55e820a93e

📥 Commits

Reviewing files that changed from the base of the PR and between 8cc5497 and 3dce6a2.

📒 Files selected for processing (10)
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/sdk/python.mdx
  • scripts/generate_api_docs.sh
  • tests/docs/test_python_api_docs.py
  • tests/python/test_typed_config.py
📜 Review details
⏰ Context from checks skipped due to timeout. (9)
  • GitHub Check: Preview docs
  • GitHub Check: Test (Python 3.12, macos-arm64)
  • GitHub Check: Test (Python 3.14, macos-arm64)
  • GitHub Check: Test (Python 3.11, windows-amd64)
  • GitHub Check: Test (Python 3.12, windows-amd64)
  • GitHub Check: Test (Python 3.14, windows-amd64)
  • GitHub Check: Test (Python 3.13, windows-amd64)
  • GitHub Check: Test (Python 3.13, macos-arm64)
  • GitHub Check: Pre-commit
🧰 Additional context used
📓 Path-based instructions (29)
**/*.{md,rst}

📄 CodeRabbit inference engine (.agents/skills/contribute-api/SKILL.md)

Update documentation and examples in the same branch as the public API change.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
{README.md,docs/**/*.{md,mdx,yml},examples/**/*.{md,mdx,yml}}

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

Keep package names, repository references, and build commands current in documentation and examples.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/sdk/python.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
{docs/**/*.{md,mdx,yml},examples/**/*.{md,mdx,yml}}

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

Update relevant getting-started, reference, adapter, and example documentation when the corresponding examples or adapters change.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/sdk/python.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
docs/**/*.{md,mdx,yml}

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

Run just docs when the documentation site changes.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/sdk/python.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*

📄 CodeRabbit inference engine (.agents/skills/karpathy-guidelines/SKILL.md)

**/*: Before implementing, explicitly state assumptions, surface ambiguity and tradeoffs, present multiple interpretations when relevant, and ask for clarification rather than silently deciding or proceeding when requirements are unclear.
Prefer the minimum code needed to solve the requested problem: avoid speculative features, unnecessary abstractions, unrequested flexibility, and handling of impossible scenarios; simplify overcomplicated solutions.
When editing existing code, make surgical changes only: do not modify unrelated code, comments, formatting, or pre-existing dead code; match the existing style, and remove only unused imports, variables, or functions introduced by your changes.
Define verifiable success criteria for each task, such as writing regression tests for bugs and invalid-input tests for validation, then verify the implementation against those criteria. For multi-step work, state a brief plan with a verification check for each step.

**/*: Always spell NVIDIA in all caps; do not use Nvidia, nvidia, nVidia, nVIDIA, or NV.
Use an NVIDIA before a noun, because the name begins with an “en” sound.
Do not add a registered trademark symbol after NVIDIA when referring to the company; use trademark symbols with product names only when required by the document type or legal guidance.
Verify official capitalization, spacing, hyphenation, and spelling for NVIDIA and third-party product names; do not rewrite official product names for grammar or title-case rules.
Precede NVIDIA product names with NVIDIA on first mention when natural and accurate, and link the first mention when the destination helps the reader.
On first use, include the company name and full model qualifier when it helps identify the model; preserve official capitalization and punctuation, and use shorter family names only after establishing the full name.
For learning-oriented and developer content, do not force trademark symbols unless explicitly required; for press, ...

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • scripts/generate_api_docs.sh
  • tests/python/test_typed_config.py
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/sdk/python.mdx
  • tests/docs/test_python_api_docs.py
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*.{md,mdx,rst}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-guide.md)

**/*.{md,mdx,rst}: For NeMo Fabric documentation, verify technical claims against the current repository, public API, or documented command before reviewing style.
Always spell NVIDIA in all caps; do not use Nvidia, nvidia, or NV.
Format commands, code elements, expressions, package names, file names, and paths as inline code.
Use descriptive link text; avoid raw URLs and weak anchors such as here or read more.
Use title case consistently for technical documentation headings.
Introduce code blocks, lists, tables, and images with complete sentences.
Write procedures as imperative, parallel steps; split long procedures into smaller tasks.
Prefer active voice, present tense, short sentences, contractions, and plain English while preserving necessary technical precision.
Use can for possibility and reserve may for permission.
Use after for temporal relationships instead of once, and prefer refer to over see when directing readers to another resource.
Avoid culture-specific idioms, unnecessary Latinisms, jokes, and marketing exaggeration in technical documentation.
Spell out months in body text, avoid ordinal dates, and use clear time zones.
Spell out whole numbers from zero through nine unless they are technical values, parameters, versions, or UI values; use numerals for 10 or greater and commas in thousands.
Do not add trademark symbols to learning-oriented documentation unless the source, platform, or legal guidance explicitly requires them.
Do not replace precise technical terms with simpler words when doing so would lose precision.
Do not flag passive voice when the actor is unknown or the action is the important part.
Do not rewrite API names, package names, command flags, or code literals for style.

**/*.{md,mdx,rst}: Use consistent title case for technical-document headings and table headers; avoid quotation marks, ampersands, and exclamation marks in headings, while preserving official product, event, research, and whitepaper title ...

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/sdk/python.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*.{md,rst,txt,adoc}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-language-mechanics.md)

**/*.{md,rst,txt,adoc}: For technical documentation, use professional, active, conversational, engaging, precise, and plain-English prose. Prefer active voice, present tense, short sentences, and scannable paragraphs. Avoid casual or imprecise language, swearing, threats, insults, jokes, puns, culture-specific idioms, marketing exaggeration, and unsupported third-party comparisons.
Use can for possibility and reserve may for permission; use after for temporal order; use refer to for cross-references; prefer short direct sentences and specific verbs; avoid unnecessary please in technical documentation.
Prefer active voice when the actor matters. Passive voice is acceptable when the actor is unknown or irrelevant, when the action or result is the focus, or in programmer documentation.
Use natural contractions in conversational technical prose, but do not force them in formal legal copy, API references, or generated text.
Prefer simpler English over Latinisms: use for example or such as instead of e.g., and so on instead of etc., that is instead of i.e., compared to instead of vs., and by, through, or using instead of via. Use industry-standard terms such as in silico, in vitro, and in vivo when appropriate, and italicize them in running text.
Use that without commas for essential clauses, and which with commas for nonessential clauses.
Format dates and times clearly: spell out months in body text; use forms such as June 12, 2025; avoid numeric or ordinal dates; capitalize days; use 12-hour time when appropriate; include a space before a.m. or p.m.; use ET and PT for needed time zones; avoid 24/7; and prefer from 12:30 to 1:00 p.m. for prose ranges.
Format numbers consistently: spell out zero through nine in body text, use numerals for 10 or greater and for technical values, use commas in thousands, do not begin a sentence with a numeral, spell out ordinals, and use numerals consistently within a category wh...

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
docs/**/*

📄 CodeRabbit inference engine (AGENTS.md)

Update Fern documentation under docs/ when public behavior, the nemo-fabric package, examples, or supported bindings change.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/sdk/python.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
docs/reference/api/**

📄 CodeRabbit inference engine (AGENTS.md)

Regenerate or update generated API references under docs/reference/api/ when the public API changes.

Treat all files under docs/reference/api/ as generated output and do not modify them directly.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*.{md,mdx}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/SKILL.md)

**/*.{md,mdx}: Use the full product name NVIDIA NeMo Fabric on its first usage, typically in the title or H1; use NeMo Fabric thereafter.
Use fabric by itself only when referring to the CLI tool, and surround those references with backticks.
Capitalize NVIDIA correctly in public documentation.
Format commands, code elements, expressions, file names, paths, and filenames as inline code where needed.
Use title case consistently for headings in technical documentation.
Introduce code blocks, tables, and lists with complete lead-in sentences.
Use descriptive anchor text instead of raw URLs or generic link text such as here.
Prefer active voice, present tense, short sentences, and plain English.
Use consistent terminology for the same concept throughout a document.
Write procedures as imperative, parallel, easy-to-scan steps, and split long sequences into smaller tasks.
Use after instead of once when expressing temporal sequence.
Use can instead of may when the intended meaning is possibility rather than permission.
Avoid ambiguous numeric dates and ordinal dates in body text.
For learning-oriented documentation, do not force trademark symbols unless the source document explicitly requires them.
Introduce examples' code blocks with full sentences and ensure examples match current APIs and build commands.

For docs site changes, run just docs to regenerate Python and Rust API references and validate the Fern configuration.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/sdk/python.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*.{rs,py,html,md,mdx,toml,yml,yaml,sh,bash}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

All Rust, Python, HTML, Markdown, MDX, TOML, YAML, and shell source files must include the project SPDX copyright and Apache-2.0 license headers using the comment syntax appropriate to each file type.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • scripts/generate_api_docs.sh
  • tests/python/test_typed_config.py
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/sdk/python.mdx
  • tests/docs/test_python_api_docs.py
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/{README.md,*.md,*.mdx}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Update relevant documentation when changes affect public behavior, adapters, examples, or workspace structure.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/sdk/python.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
**/*.md

📄 CodeRabbit inference engine (.agents/skills/README.md)

Documentation and examples must be updated consistently with changes to public behavior and reviewed for NVIDIA technical-writing style.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
{docs/**,README.md,AGENTS.md}

⚙️ CodeRabbit configuration file

{docs/**,README.md,AGENTS.md}: Review documentation for technical accuracy against the current API, command correctness, and consistency with generated schemas.
For links between files under docs/, require paths relative to the source file with the target file's .mdx extension so they work in both Fern builds and repository browsers. Flag Fern site-root links such as NeMo Fabric overview; use the repository-relative equivalent, such as NeMo Fabric overview.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/sdk/python.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
{*.md,**/*.md,**/*.mdx,**/*.ipynb}

⚙️ CodeRabbit configuration file

{*.md,**/*.md,**/*.mdx,**/*.ipynb}: Enforce the product name in user-facing prose: use "NVIDIA NeMo Fabric" on first use and "NeMo Fabric" thereafter. Flag standalone capitalized "Fabric" when it refers to the product. Do not flag the lowercase fabric CLI command, package/import/crate names, code identifiers, API symbols, configuration keys, file paths, or unrelated generic uses of the word.

Files:

  • docs/reference/api/python-library-reference/nemo_fabric.streaming.md
  • docs/reference/api/python-library-reference/nemo_fabric.client.md
  • docs/reference/api/python-library-reference/nemo_fabric.runtime.md
  • docs/reference/api/python-library-reference/nemo_fabric.errors.md
  • docs/sdk/python.mdx
  • docs/reference/api/python-library-reference/nemo_fabric.types.md
  • docs/reference/api/python-library-reference/nemo_fabric.models.md
scripts/generate_api_docs.sh

📄 CodeRabbit inference engine (AGENTS.md)

Keep the stable public wrapper scripts/generate_api_docs.sh at the scripts/ root and reference it in docs and examples; use namespaced paths under scripts/docs/ only for internal maintenance documentation.

For Python API reference changes, update scripts/generate_api_docs.sh when the generator itself requires changes.

Files:

  • scripts/generate_api_docs.sh
**/*.{rs,py,pyi,json,yaml,yml}

📄 CodeRabbit inference engine (.agents/skills/contribute-api/SKILL.md)

Determine and update every affected public surface, including the CLI, PyO3 bindings, Python SDK, type stubs, schemas, and adapter contract, so they remain in parity.

Files:

  • tests/python/test_typed_config.py
  • tests/docs/test_python_api_docs.py
**/*.{rs,py}

📄 CodeRabbit inference engine (.agents/skills/prepare-pr/SKILL.md)

For native binding changes, run cargo check -p fabric-python --locked.

**/*.{rs,py}: When changing the Rust core or public schemas, run both the Rust and Python test suites.
When adding functionality, include tests in the corresponding Rust crate or the relevant area under tests/.

Files:

  • tests/python/test_typed_config.py
  • tests/docs/test_python_api_docs.py
**/*.{py,pyi}

📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)

If Python code or a Python-facing adapter changes, run just test-python.

Files:

  • tests/python/test_typed_config.py
  • tests/docs/test_python_api_docs.py
**/*.{rs,py,pyi}

📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)

**/*.{rs,py,pyi}: If public configuration types change, confirm schema snapshot tests in just test-rust pass and review generated schema diffs.
For schema or public contract changes, run both language suites and review changes under schemas/ and generated API references.

Files:

  • tests/python/test_typed_config.py
  • tests/docs/test_python_api_docs.py
**/*.{py,pyi,rs}

📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)

For Python SDK or PyO3 binding changes, use python-tests, run focused pytest tests first, then just test-python; rebuild with just build-python when native code or packaging changes.

Files:

  • tests/python/test_typed_config.py
  • tests/docs/test_python_api_docs.py
tests/**/*.py

📄 CodeRabbit inference engine (.agents/skills/python-tests/SKILL.md)

tests/**/*.py: Use Pytest to run Python tests.
Do not add @pytest.mark.asyncio to tests; async tests are automatically detected and run by the async runner.
Do not add -> None return type annotations to test functions.
When mocking a class, use unittest.mock.MagicMock or unittest.mock.AsyncMock, using the spec argument when necessary, rather than defining a new class.
Prefix mocked class names with mock, not fake.
Prefer pytest fixtures over helper methods.
Do not repeat fixtures; place fixtures needed by multiple test files in conftest.py.
Define fixtures using @pytest.fixture(name="<fixture_name>"[, scope="<scope>"]) and a function named <fixture_name>_fixture; specify scope only when it is not function.
Prefer pytest.mark.parametrize over separate tests for different input types.
Use @pytest.mark.usefixtures when a fixture is needed but its return value is unused or it does not return a value.
Use the autouse restore_environ_fixture from tests/conftest.py to restore environment variables; modify variables with os.environ and do not use monkeypatch.setenv.
Avoid defensive programming in tests; access expected data directly so missing data raises a clear failure, such as using results["data"] instead of results.get("data").

Files:

  • tests/python/test_typed_config.py
  • tests/docs/test_python_api_docs.py
**/*.{rs,py,toml}

📄 CodeRabbit inference engine (.agents/skills/update-project-version/SKILL.md)

When editing version helpers, verify every nemo-fabric-* workspace package through Cargo metadata and reject a static version in python/pyproject.toml.

Files:

  • tests/python/test_typed_config.py
  • tests/docs/test_python_api_docs.py
**/*.{toml,rs,py}

📄 CodeRabbit inference engine (.agents/skills/update-project-version/SKILL.md)

Avoid blind repository-wide replacement of version-like strings; distinguish package-version references from examples and unrelated dependency versions.

Files:

  • tests/python/test_typed_config.py
  • tests/docs/test_python_api_docs.py
**/*.py

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Use type annotations for public Python APIs.

Files:

  • tests/python/test_typed_config.py
  • tests/docs/test_python_api_docs.py
**/*.{py,rs}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

**/*.{py,rs}: Keep native Python binding declarations synchronized with their Rust implementations.
Use snake_case for functions and variables; use PascalCase for Rust types and Python classes.

Files:

  • tests/python/test_typed_config.py
  • tests/docs/test_python_api_docs.py
{tests/**,python/tests/**}

⚙️ CodeRabbit configuration file

{tests/**,python/tests/**}: Tests should cover the behavior promised by the changed API surface, including error paths, lifecycle cleanup, and SDK/native parity where relevant.

Files:

  • tests/python/test_typed_config.py
  • tests/docs/test_python_api_docs.py
**/*.mdx

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

In MDX files, use JSX comment delimiters ({/* and */}) for top-of-file comments, including SPDX headers; do not use HTML comments.

Use {/* ... */} delimiters for top-of-file MDX SPDX comments, not HTML comment delimiters.

Files:

  • docs/sdk/python.mdx
docs/sdk/python.mdx

📄 CodeRabbit inference engine (AGENTS.md)

Keep docs/sdk/python.mdx current when the public Python API changes.

Files:

  • docs/sdk/python.mdx
🔇 Additional comments (12)
tests/python/test_typed_config.py (3)

68-71: LGTM!


112-112: LGTM!


125-125: LGTM!

Also applies to: 127-130

docs/sdk/python.mdx (1)

271-271: LGTM!

Also applies to: 444-445, 548-550, 581-591

scripts/generate_api_docs.sh (1)

43-53: LGTM!

Also applies to: 79-79, 94-94

tests/docs/test_python_api_docs.py (1)

8-25: LGTM!

Also applies to: 44-58, 79-134, 232-272, 274-291, 293-308, 309-317, 332-340

docs/reference/api/python-library-reference/nemo_fabric.client.md (1)

4-10: LGTM!

Also applies to: 19-19, 37-41, 73-77, 109-115, 150-156

docs/reference/api/python-library-reference/nemo_fabric.errors.md (1)

10-10: LGTM!

Also applies to: 19-19, 34-49, 72-91, 114-133, 156-175, 198-217, 240-259

docs/reference/api/python-library-reference/nemo_fabric.models.md (1)

4-10: LGTM!

Also applies to: 21-21, 61-1937, 1938-2003

docs/reference/api/python-library-reference/nemo_fabric.runtime.md (1)

10-10: LGTM!

Also applies to: 19-19, 28-47, 99-99, 133-137, 158-158

docs/reference/api/python-library-reference/nemo_fabric.streaming.md (1)

10-10: LGTM!

Also applies to: 19-19, 33-33, 44-44

docs/reference/api/python-library-reference/nemo_fabric.types.md (1)

10-10: LGTM!

Also applies to: 19-99, 101-185, 187-269, 270-351, 352-431, 432-516, 516-599, 600-677, 678-761, 762-845, 846-935, 936-1013, 1014-1120

Comment thread tests/python/test_typed_config.py Outdated
@zhongxuanwang-nv
zhongxuanwang-nv changed the base branch from main to release/0.1 July 27, 2026 23:17
@zhongxuanwang-nv
zhongxuanwang-nv force-pushed the fix/docs-audit-corrections branch from 382aa55 to a615d06 Compare July 27, 2026 23:37
Signed-off-by: Zhongxuan Wang <daniewang@nvidia.com>
@zhongxuanwang-nv

Copy link
Copy Markdown
Contributor Author

/merge

@rapids-bot
rapids-bot Bot merged commit 084ee30 into release/0.1 Jul 27, 2026
24 of 28 checks passed
@lbliii lbliii mentioned this pull request Jul 28, 2026
2 tasks
rapids-bot Bot pushed a commit that referenced this pull request Jul 28, 2026
#### Overview

Applies the `::r` NVIDIA documentation style review follow-up to the human-authored documentation changed by #115. The review found five style issues across two files, and this PR corrects all five without changing product behavior.

#### Details

- Add complete lead-in sentences before API tables.
- Use `can` instead of `may` for possibility.
- Replace vague wording such as "additive" and "generically" with plain English.
- Replace a semicolon with shorter, direct sentences.
- Keep generated API reference pages and technical API auditing outside this style-only scope.

#### Validation

- `uvx --from rust-just just docs` — passed with the existing Fern warning about the generated Python reference SPDX comment; Fern skipped the missing-redirects check.
- `git diff --check` — passed.
- `::r` changed-line scan — no high-signal style violations remain in the reviewed human-authored documentation.

Breaking changes: None.

#### Where should the reviewer start?

Start with `docs/sdk/python.mdx`, which contains four of the five style corrections.

#### Related Issues: (use one of the action keywords Closes / Fixes / Resolves / Relates to)

- Relates to: #115

- [x] I confirm this contribution is my own work, or I have the right to submit it under this project's license.
- [x] I searched existing issues and open pull requests, and this does not duplicate existing work.



## Summary by CodeRabbit

* **Documentation**
  * Clarified the Python SDK “API Inventory” lead-in and tightened wording for `Fabric.doctor(...)`.
  * Rephrased guidance for custom fields and adapter settings, emphasizing human-readable agent identity and caller-owned annotations.
  * Clarified that NeMo Fabric preserves these metadata values in the resolved configuration (without copying them into `RunResult.metadata`).
  * Refined the introductory sentence for the `Fabric` methods reference table.

Authors:
  - Lawrence Lane (https://github.com/lbliii)
  - Zhongxuan (Daniel) Wang (https://github.com/zhongxuanwang-nv)

Approvers:
  - Zhongxuan (Daniel) Wang (https://github.com/zhongxuanwang-nv)

URL: #131
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants